package com.atguigu.yygh.model.hosp;

import com.alibaba.fastjson.JSONObject;
import com.atguigu.yygh.model.base.BaseMongoEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.data.mongodb.core.index.Indexed;
import org.springframework.data.mongodb.core.mapping.Document;

/**
 * <p>
 * Hospital
 * </p>
 *
 * @author qy
 */
@Data
@ApiModel(description = "ApartmentInfo")
@Document("ApartmentInfo")
public class ApartmentInfo extends BaseMongoEntity {
	
	private static final long serialVersionUID = 1L;
	
	@ApiModelProperty(value = "宿舍编号")
	@Indexed(unique = true) //唯一索引
	private String apartmentCode;

	@ApiModelProperty(value = "宿舍名称")
	@Indexed //普通索引
	private String apartmentName;

	@ApiModelProperty(value = "宿舍类型")
	private String apartmentType;

	@ApiModelProperty(value = "省code")
	private String provinceCode;

	@ApiModelProperty(value = "市code")
	private String cityCode;

	@ApiModelProperty(value = "区code")
	private String districtCode;

	@ApiModelProperty(value = "详情地址")
	private String address;

	@ApiModelProperty(value = "宿舍logo")
	private String logoData;

	@ApiModelProperty(value = "宿舍简介")
	private String intro;

	@ApiModelProperty(value = "坐车路线")
	private String route;

	@ApiModelProperty(value = "状态 0：未上线 1：已上线")
	private Integer status;

	//预约规则
	@ApiModelProperty(value = "预约规则")
	private BookingRule bookingRule;

	public void setBookingRule(String bookingRule) {
		this.bookingRule = JSONObject.parseObject(bookingRule, BookingRule.class);
	}

	@Override
	public String toString() {
		return "ApartmentInfo{" +
				"apartmentCode='" + apartmentCode + '\'' +
				", apartmentName='" + apartmentName + '\'' +
				", apartmentType='" + apartmentType + '\'' +
				", provinceCode='" + provinceCode + '\'' +
				", cityCode='" + cityCode + '\'' +
				", districtCode='" + districtCode + '\'' +
				", address='" + address + '\'' +
				", logoData='" + logoData + '\'' +
				", intro='" + intro + '\'' +
				", route='" + route + '\'' +
				", status=" + status +
				", bookingRule=" + bookingRule +
				'}';
	}
}

